package net.yondervision.hrfsp.sdk.esign.domain.request.body;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author Cash Zhang
 * @version v1.0
 * @since 2019/11/05 16:12
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WatermarkInfo {

  /**
   * 1：原图fileId ；2：原图base64； 3：文字
   */
  private String contentType;
  /**
   * 水印内容：原图fileId/原图base64/文字，
   * 1：文字最高32个字符；
   * 2：当传入内容为图片时，建议不超过200K，图片越大，添加时间越长；
   */
  private String content;
  /**
   * 当content传入的是文字时，
   * 可指定文字大小，范围10-50号， 默认40
   */
  private Integer fontSize;
  /**
   * 当content传入的是文字时，可指定字体，支持如下字体，
   * 黑体 simhei 、普惠体 puhuiti、 宋体 simsun，默认黑体
   */
  private String fontName;
  /**
   * 当content传入的是文字时，可以指定生成的水印图片固定高，
   * 300-600，默认根据文字大小自适应水印图片高
   */
  private Integer imageHeight;
  /**
   * 当content传入的是文字时，可以指定生成的水印图片固定宽，
   * 300-600，默认根据文字大小自适应水印图片宽
   */
  private Integer imageWidth;
  /**
   * 当content传入的是文字时，
   * 可指定生成的水印图片旋转角度 ，
   * 正数为顺时针旋转，负数为逆时针旋转
   */
  private Integer rotationAngle;
  /**
   * 当content传入的是图片时，可以缩放生成的水印图片比例， 默认是100%，原尺寸大小
   */
  private Integer scaling;
  /**
   * 生成的水印图片渲染模式：
   * 1描边 、2实心 ，默认实心， 当content传入的是文字时，字体推荐：黑体、宋体
   */
  private Integer vmModel;
  /**
   * 生成的水印图片在描边模式下，
   * 选择描边的粗细。范围为1~4，默认为3
   */
  private Integer lineWidths;
  /**
   * 生成的水印图片透明度，1-255 值越大，
   * 打印出的文件越容易肉眼辨识水印图片，默认135
   */
  private Integer alpha;
  /**
   * 生成的水印图片强度，240-253 ，值越大，
   * 打印出的文件越难肉眼辨识水印图片，默认240
   */
  private Integer strength;


}
